It is desirable, in a variety of contexts, to capture signals. The nature of the signals may vary from context to context. For example, in a medical context, it may be desirable to capture signals that represent heart activity. In the context of sound studios, it may be desirable to capture audio signals produced by music artists. The techniques described herein are not limited to any particular type of recorded signal. The digital representation of a signal is referred to herein as “signal data”.
For a variety of reasons, it may be desirable to edit the signal data after a signal has been digitally recorded. For example, an audio recording of a lecture may include a cough that should be removed. In addition to problems created by the recording environment (such as a coughing audience), the recording process itself may introduce problems, such as hissing or popping noises, that should be removed from the recording.
Many signal editing applications are available for performing post-recording edits to a captured signal. In the context of audio signals, many audio editing applications allow a user to listen to the audio. While the audio is being played, the user is presented with a visual representation of the signal, with an indication of the location, within the signal, that is currently being played. While listening to the audio and watching the visual representation of the signal, the user may identify a problem that requires fixing. For example, the user may hear a “cough”, and see a spike that represents the cough in the visual representation of the signal. The user may then use a tool provided by the editing application to correct the problem. For example, the user may replace the segment of the signal that contains the cough with an ambient noise print, as described in U.S. patent application Ser. No. 11/104,995, filed on Apr. 12, 2005 entitled “PRESERVING NOISE DURING EDITING OF A SIGNAL”, the contents of which are incorporated herein by this reference.
Many editing operations are performed on selected segments of the signal, rather than on the entire signal. For example, in the operation mentioned above, the user replaces, with ambient noise, only the segment of the signal that contains the cough. To allow users to perform operations that involve segments of a signal, signal editing applications typically have user interface controls that allow a user to select a segment of the signal.
The specific user interface controls that a signal editing application provides for selecting a segment of a signal may vary from application to application. For example, one signal editing application may allow a user to specify “markers” at user-selected points in the visual depiction of the signal. The user may then double-click the cursor between two markers to automatically select the segment of the signal that is bounded by the two markers. As another example, a signal editing application may allow a user to select a segment by (1) pressing down on a mouse button at a first point in the visual depiction of the signal, (2) dragging the cursor to a second point in the visual depiction of the signal, and (3) releasing the mouse button. In response to releasing the mouse button, the segment between the first point and the second point is selected. A single signal editing application may provide numerous alternative techniques for selected segments of the signal. The techniques described herein are not limited to any particular techniques for selecting segments of a signal.
During the editing process, it may be desirable to perform a second editing operation on the same segment on which a first editing operation was previously performed. If the desired segment is still the currently selected segment, then the segment does not have to be re-selected to perform the second operation. However, if the desired segment is no longer selected, then the user must re-select the desired segment.
Manually trying to re-select a previously selected segment is both tedious and error prone. If the user fails to select the exact boundaries of the previously selected segment, then the subsequent editing operation may create more problems that it fixes. For example, assume that a particular segment of an audio signal was previously converted to “silence”. At a later point in the editing process, the user may decide to change that particular segment to ambient noise. However, if the user is not able to select the exact boundaries of the segment that was converted to silence, the attempt to convert the segment to ambient noise may leave a small segment of silence.
To assist the user in selecting a previously selected segment, the signal editing application may keep track of previously selected segments. However, without user interface tools that facilitate the selection of previously selected segments, the process of selecting previously-selected segments may still be cumbersome.